Execution Limit

SoftwareShield System Feature Guide > Expiring Licenses > Execution Limit

## Execution Limit

You should already have a basic understanding of expiration types in the SoftwareShield System, If not please read Expiring Licenses in this reference.

The Execution Limit causes the license to expire not based on time, but rather on how many times the software has been used.

If you choose to use an Execution Limit in your license, you must set it to a value greater than 0 and less than 10,000. This is the number of times the ClientProtector will StartUp the license before it considers it to be expired.

If an Execution Limit is in effect on an Expire Mode license, every time the StartUp function is called (which should be exactly once per execution of your program when it starts), a numeric counter inside the license is incremented.

You can find the actual Execution Limit, Execution Count, and Executions Remaining at run time using various function calls on the ClientProtector. (see below)

If a license is currently under the effect of an Execution Limit, regardless of if it has expired or not, the license is said to be in Expire Mode. When you issue an Activation Code for a Release All Expiration Authorization Definition, you remove the license from Expire Mode. Once removed, the license can not be placed back into Expire Mode.

Authorization Definitions that can be used to manipulate an Expire Mode license that uses an Expiration Limit are:

1. Release All Expiration Authorization Definitions

2. Add Allowable Executions Authorization Definitions

Checking the expiration state of your license primarily occurs in the ClientProtector StartUp function. For a view of the logical flow of control, see the SoftwareShield ClientProtector Control Flow-Charts.

### More Information

For help on actually setting the Execution Limit of a license, see Expiration Tab in the SoftwareShield License Manager Reference.

For help on actually retrieving at run-time the Execution Limit, Execution Count, and Executions Remaining, see GetExecutionLimit, GetExecutionCount and GetExecutionsRemaining in the SoftwareShield ClientProtector Reference.